<?php
/**
 * TestGuest Version1.0
 * ================================================
 * Copy 2017-2018 zxj
 * Web: http://www.zhaoxiaojie.club
 * ================================================
 * Author: Zxj
 * Date: 17/8/2
 * Time: 上午8:41
 */


/**
 *_runtime()是用来获取执行耗时
 * @access public  表示函数对外公开
 * @return float 表示返回出来的是一个浮点型数字
 */
function _runtime(){
    $_mtime = explode(' ',microtime());
    return $_mtime[1]+$_mtime[0];
}


/**
 * _alert_back()表是JS弹窗
 * @access public
 * @param $_info
 * @return void 弹窗
 */
function _alert_back($info){


    //echo '<script type="text/javascript">alert('.$info.');history.back();</script>';
    echo "<script type='text/javascript'>alert('".$info."');history.back();</script>";
    exit();

}

/**
 * _check_username表示检测并过滤用户名
 * @access public
 * @param string $_string 受污染的用户名
 * @param int $_min_num  最小位数
 * @param int $_max_num 最大位数
 * @return string  过滤后的用户名
 */
function _check_username($_string,$_min_num=2,$_max_num=20){
    //去掉两边空格
        $_string = trim($_string);

    //长度小于两位或者大于20位
    if(mb_strlen($_string,'utf-8')<$_min_num||mb_strlen($_string,'utf-8')>$_max_num){

        _alert_back('用户名长度不得小于'.$_min_num.'或者大于'.$_max_num.'位');

    }

    //显示敏感字符
    $_char_pattern = '/[<>\'\"\ \　]/';
    if(preg_match($_char_pattern,$_string)){

        _alert_back('用户不得包含敏感字符!');

    }

    //敏感用户
    $_mg_string = ['赵枭杰','刘德华','张学友'];

    //这里采用绝对匹配
    if(in_array($_string,$_mg_string)){

        _alert_back('用户名包含敏感词汇!');

    }

    //将用户名转义
    return addslashes($_string);




}

/**
 * _check_username表示检测并过滤密码
 * @access public
 * @param string $_string 受污染的密码
 * @param int $_min_num  最小位数
 * @param int $_max_num 最大位数
 * @return string  过滤后的密码
 */
function _check_password($first,$second,$_min_num=6,$_max_num=20){

    if(empty($first)){

        _alert_back('密码不能为空!');

    }


    if($first!=$second){

        _alert_back('两次密码必须一致!');

    }

    //长度小于6位或者大于20位
    if(mb_strlen($first,'utf-8')<$_min_num||mb_strlen($first,'utf-8')>$_max_num){

        _alert_back('密码长度不得小于'.$_min_num.'或者大于'.$_max_num.'位');

    }
    //sha1加密
    return sha1($second);

}

function _check_question($_string,$_min_num=4,$_max_num=20){


    //长度小于4位或者大于20位
    if(mb_strlen($_string,'utf-8')<$_min_num||mb_strlen($_string,'utf-8')>$_max_num){

        _alert_back('密码提示不得小于'.$_min_num.'或者大于'.$_max_num.'位');

    }

    return addslashes($_string);

}

function _check_answer($_string,$_min_num=4,$_max_num=20){


    //长度小于4位或者大于20位
    if(mb_strlen($_string,'utf-8')<$_min_num||mb_strlen($_string,'utf-8')>$_max_num){

        _alert_back('密码提示不得小于'.$_min_num.'或者大于'.$_max_num.'位');

    }

    return addslashes($_string);

}

//检测邮箱是否合法
function _check_email($string){
    if(empty($_string)){

        return null;

    }else{
        //参考bnbbs@163.com.net.cn
        //[a-zA-Z0-9_]  == \w
        //正则听起来比较麻烦

        if (!preg_match('/^[\w\-\.]+@[\w\-\.]+(\.\w+)+$/', $string)) {

            _alert_back('邮件格式不正确!');

        }
    }

}

//QQ验证
function _check_qq($string){
    if(empty($string)){

    return null;

    }else{
        //123456789
        if(!preg_match("/^[1-9]{1}[0-9]{4,9}$/",$string)){

            _alert_back('QQ号码不正确!');

        }



    }

    return $string;
}

function _check_url($string){
    if(empty($string)||$string='http://'){

        return null;

    }else{

        if(!preg_match('/^https?:\/\/$/',$string)){

           _alert_back('网址不合法!');

        }

    }

    return $string;

}